/**
 * jims
 */
package com.jims.master.modules.doctor.service;

import com.jims.master.common.persistence.Page;
import com.jims.master.common.service.CrudService;
import com.jims.master.modules.doctor.dao.PreDischgedPatsDao;
import com.jims.master.modules.doctor.entity.PreDischgedPats;
import com.jims.master.modules.orders.entity.Orders;
import com.jims.master.modules.orders.service.OrdersService;
import com.jims.master.modules.sys.utils.UserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 出院通知Service
 * @author 陈晓阳
 * @version 2017-04-05
 */
@Service
@Transactional(readOnly = true)
public class PreDischgedPatsService extends CrudService<PreDischgedPatsDao, PreDischgedPats> {

    @Autowired
    private OrdersService ordersService;

	public PreDischgedPats get(String id) {
		return super.get(id);
	}
	
	public List<PreDischgedPats> findList(PreDischgedPats preDischgedPats) {
		return super.findList(preDischgedPats);
	}
	
	public Page<PreDischgedPats> findPage(Page<PreDischgedPats> page, PreDischgedPats preDischgedPats) {
		return super.findPage(page, preDischgedPats);
	}

    /**
     * 保存出院通知单
     * @param preDischgedPats
     * @return
     */
	@Transactional(readOnly = false)
	public int save(PreDischgedPats preDischgedPats) {
        int resultVal=0;
        // 1 先保存遗嘱
        Orders orders=createOrdersData(preDischgedPats);
       String ordersId=ordersService.saveOrder(orders);
        //2 保存出院通知单
        preDischgedPats.setOrdersId(ordersId);
        resultVal+=super.save(preDischgedPats);
		return resultVal;
	}

    /**
     * set value
     * @param preDischgedPats
     * @return
     */
    private Orders createOrdersData(PreDischgedPats preDischgedPats) {
        Orders orders=new Orders();
        orders.setOrderStatus("1");//新建状态
        orders.setIsDrug("2");
        orders.setPatientId(preDischgedPats.getPatientId());
        orders.setVisitId(preDischgedPats.getVisitId());
        orders.setBillingAttr("0");//不计价
        orders.setOrderText("出院通知单");
        orders.setOrderClass("p");
        orders.setRepeatIncaditor("0");
        orders.setIsApply("1");//是申请
        orders.setNewDept(UserUtils.getUser().getOrgDept().getId());
        return orders;
    }

    /**
     * 删除出院通知单
     * @param preDischgedPats
     * @return
     */
    @Transactional(readOnly = false)
	public int delete(PreDischgedPats preDischgedPats) {
        int resultVal=0;
        //1 先删除出院通知单
        preDischgedPats=super.get(preDischgedPats.getId());
        String ordersId=preDischgedPats.getOrdersId();
        resultVal+=super.delete(preDischgedPats);
        resultVal+=ordersService.delDis(ordersId);
 		return resultVal;
	}
	
}